const config = {
  mode: 'production',
  node: {
    setImmediate: false,
    module: 'empty',
    dns: 'mock',
    http2: 'empty',
    process: 'mock',
    dgram: 'empty',
    fs: 'empty',
    net: 'empty',
    tls: 'empty',
    child_process: 'empty'
  },
  output: {
    path: '/Users/kaven/dev/test/fe/react/umi3a/dist',
    filename: '[name].js',
    chunkFilename: '[name].js',
    publicPath: '/',
    futureEmitAssets: true,
    pathinfo: false
  },
  resolve: {
    symlinks: true,
    alias: {
      'react-router': '/Users/kaven/dev/test/fe/react/umi3a/node_modules/react-router',
      'react-router-dom': '/Users/kaven/dev/test/fe/react/umi3a/node_modules/react-router-dom',
      history: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/history-with-query',
      hooklib: '@/hooks',
      'regenerator-runtime': '/Users/kaven/dev/test/fe/react/umi3a/node_modules/@umijs/preset-built-in/node_modules/regenerator-runtime',
      react: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/react',
      'react-dom': '/Users/kaven/dev/test/fe/react/umi3a/node_modules/react-dom',
      antd: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/antd',
      'antd-mobile': '/Users/kaven/dev/test/fe/react/umi3a/node_modules/antd-mobile',
      dva: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/dva',
      '@': '/Users/kaven/dev/test/fe/react/umi3a/src',
      '@@': '/Users/kaven/dev/test/fe/react/umi3a/src/.umi-production',
      umi: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/umi'
    },
    extensions: [
      '.web.js',
      '.wasm',
      '.mjs',
      '.js',
      '.web.jsx',
      '.jsx',
      '.web.ts',
      '.ts',
      '.web.tsx',
      '.tsx',
      '.json'
    ],
    modules: [
      'node_modules',
      '/Users/kaven/dev/test/fe/react/umi3a/node_modules/@umijs/bundler-webpack/node_modules'
    ]
  },
  module: {
    rules: [
      /* config.module.rule('js') */
      {
        test: /\.(js|mjs|jsx|ts|tsx)$/,
        include: [
          '/Users/kaven/dev/test/fe/react/umi3a',
          '/Users/kaven/dev/test/fe/react/umi3a/node_modules/umi/dist/index.esm.js'
        ],
        exclude: [
          /node_modules/
        ],
        use: [
          /* config.module.rule('js').use('babel-loader') */
          {
            loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/babel-loader/lib/index.js',
            options: {
              sourceType: 'unambiguous',
              babelrc: false,
              cacheDirectory: 'src/.umi/.cache/babel-loader',
              presets: [
                [
                  '/Users/kaven/dev/test/fe/react/umi3a/node_modules/@umijs/babel-preset-umi/app.js',
                  {
                    nodeEnv: 'production',
                    dynamicImportNode: true,
                    autoCSSModules: true,
                    svgr: true,
                    env: {
                      targets: {
                        chrome: 49,
                        firefox: 64,
                        safari: 10,
                        edge: 13,
                        ios: 10
                      }
                    },
                    'import': [
                      {
                        libraryName: 'antd',
                        libraryDirectory: 'es',
                        style: true
                      },
                      {
                        libraryName: 'antd-mobile',
                        libraryDirectory: 'es',
                        style: true
                      }
                    ]
                  }
                ]
              ],
              plugins: []
            }
          }
        ]
      },
      /* config.module.rule('ts-in-node_modules') */
      {
        test: /\.(jsx|ts|tsx)$/,
        include: [
          /node_modules/
        ],
        use: [
          /* config.module.rule('ts-in-node_modules').use('babel-loader') */
          {
            loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/babel-loader/lib/index.js',
            options: {
              sourceType: 'unambiguous',
              babelrc: false,
              cacheDirectory: 'src/.umi/.cache/babel-loader',
              presets: [
                [
                  '/Users/kaven/dev/test/fe/react/umi3a/node_modules/@umijs/babel-preset-umi/app.js',
                  {
                    nodeEnv: 'production',
                    dynamicImportNode: true,
                    autoCSSModules: true,
                    svgr: true,
                    env: {
                      targets: {
                        chrome: 49,
                        firefox: 64,
                        safari: 10,
                        edge: 13,
                        ios: 10
                      }
                    },
                    'import': [
                      {
                        libraryName: 'antd',
                        libraryDirectory: 'es',
                        style: true
                      },
                      {
                        libraryName: 'antd-mobile',
                        libraryDirectory: 'es',
                        style: true
                      }
                    ]
                  }
                ]
              ],
              plugins: []
            }
          }
        ]
      },
      /* config.module.rule('js-in-node_modules') */
      {
        test: /\.(js|mjs)$/,
        include: [
          function () { /* omitted long function */ }
        ],
        use: [
          /* config.module.rule('js-in-node_modules').use('babel-loader') */
          {
            loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/babel-loader/lib/index.js',
            options: {
              sourceType: 'unambiguous',
              babelrc: false,
              cacheDirectory: 'src/.umi/.cache/babel-loader',
              presets: [
                [
                  '/Users/kaven/dev/test/fe/react/umi3a/node_modules/@umijs/babel-preset-umi/dependency.js',
                  {
                    nodeEnv: 'production',
                    dynamicImportNode: true
                  }
                ]
              ]
            }
          }
        ]
      },
      /* config.module.rule('images') */
      {
        test: /\.(png|jpe?g|gif|webp|ico)(\?.*)?$/,
        use: [
          /* config.module.rule('images').use('url-loader') */
          {
            loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/url-loader/dist/cjs.js',
            options: {
              limit: 10000,
              name: 'static/[name].[hash:8].[ext]',
              esModule: false,
              fallback: {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/file-loader/dist/cjs.js',
                options: {
                  name: 'static/[name].[hash:8].[ext]',
                  esModule: false
                }
              }
            }
          }
        ]
      },
      /* config.module.rule('svg') */
      {
        test: /\.(svg)(\?.*)?$/,
        use: [
          /* config.module.rule('svg').use('file-loader') */
          {
            loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/file-loader/dist/cjs.js',
            options: {
              name: 'static/[name].[hash:8].[ext]',
              esModule: false
            }
          }
        ]
      },
      /* config.module.rule('fonts') */
      {
        test: /\.(eot|woff|woff2|ttf)(\?.*)?$/,
        use: [
          /* config.module.rule('fonts').use('file-loader') */
          {
            loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/file-loader/dist/cjs.js',
            options: {
              name: 'static/[name].[hash:8].[ext]',
              esModule: false
            }
          }
        ]
      },
      /* config.module.rule('plaintext') */
      {
        test: /\.(txt|text|md)$/,
        use: [
          /* config.module.rule('plaintext').use('raw-loader') */
          {
            loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/raw-loader/dist/cjs.js'
          }
        ]
      },
      /* config.module.rule('css') */
      {
        test: /\.(css)(\?.*)?$/,
        oneOf: [
          /* config.module.rule('css').oneOf('css-modules') */
          {
            resourceQuery: /modules/,
            use: [
              /* config.module.rule('css').oneOf('css-modules').use('extract-css-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/@umijs/bundler-webpack/mini-css-extract-plugin/dist/loader.js',
                options: {
                  publicPath: './',
                  hmr: false
                }
              },
              /* config.module.rule('css').oneOf('css-modules').use('css-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/css-loader/dist/cjs.js',
                options: {
                  importLoaders: 1,
                  modules: {
                    localIdentName: '[local]___[hash:base64:5]'
                  }
                }
              },
              /* config.module.rule('css').oneOf('css-modules').use('postcss-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/postcss-loader/src/index.js',
                options: {
                  ident: 'postcss',
                  plugins: function () { /* omitted long function */ }
                }
              }
            ]
          },
          /* config.module.rule('css').oneOf('css') */
          {
            use: [
              /* config.module.rule('css').oneOf('css').use('extract-css-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/@umijs/bundler-webpack/mini-css-extract-plugin/dist/loader.js',
                options: {
                  publicPath: './',
                  hmr: false
                }
              },
              /* config.module.rule('css').oneOf('css').use('css-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/css-loader/dist/cjs.js',
                options: {
                  importLoaders: 1
                }
              },
              /* config.module.rule('css').oneOf('css').use('postcss-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/postcss-loader/src/index.js',
                options: {
                  ident: 'postcss',
                  plugins: function () { /* omitted long function */ }
                }
              }
            ]
          }
        ]
      },
      /* config.module.rule('less') */
      {
        test: /\.(less)(\?.*)?$/,
        oneOf: [
          /* config.module.rule('less').oneOf('css-modules') */
          {
            resourceQuery: /modules/,
            use: [
              /* config.module.rule('less').oneOf('css-modules').use('extract-css-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/@umijs/bundler-webpack/mini-css-extract-plugin/dist/loader.js',
                options: {
                  publicPath: './',
                  hmr: false
                }
              },
              /* config.module.rule('less').oneOf('css-modules').use('css-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/css-loader/dist/cjs.js',
                options: {
                  importLoaders: 1,
                  modules: {
                    localIdentName: '[local]___[hash:base64:5]'
                  }
                }
              },
              /* config.module.rule('less').oneOf('css-modules').use('postcss-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/postcss-loader/src/index.js',
                options: {
                  ident: 'postcss',
                  plugins: function () { /* omitted long function */ }
                }
              },
              /* config.module.rule('less').oneOf('css-modules').use('less-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/less-loader/dist/cjs.js',
                options: {
                  modifyVars: undefined,
                  javascriptEnabled: true
                }
              }
            ]
          },
          /* config.module.rule('less').oneOf('css') */
          {
            use: [
              /* config.module.rule('less').oneOf('css').use('extract-css-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/@umijs/bundler-webpack/mini-css-extract-plugin/dist/loader.js',
                options: {
                  publicPath: './',
                  hmr: false
                }
              },
              /* config.module.rule('less').oneOf('css').use('css-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/css-loader/dist/cjs.js',
                options: {
                  importLoaders: 1
                }
              },
              /* config.module.rule('less').oneOf('css').use('postcss-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/postcss-loader/src/index.js',
                options: {
                  ident: 'postcss',
                  plugins: function () { /* omitted long function */ }
                }
              },
              /* config.module.rule('less').oneOf('css').use('less-loader') */
              {
                loader: '/Users/kaven/dev/test/fe/react/umi3a/node_modules/less-loader/dist/cjs.js',
                options: {
                  modifyVars: undefined,
                  javascriptEnabled: true
                }
              }
            ]
          }
        ]
      }
    ]
  },
  optimization: {
    noEmitOnErrors: true,
    minimizer: [
      /* config.optimization.minimizer('terser') */
      new (require('/Users/kaven/dev/test/fe/react/umi3a/node_modules/terser-webpack-plugin/dist/cjs.js'))(
        {
          terserOptions: {
            parse: {
              ecma: 8
            },
            compress: {
              ecma: 5,
              warnings: false,
              arrows: false,
              collapse_vars: false,
              comparisons: false,
              computed_props: false,
              hoist_funs: false,
              hoist_props: false,
              hoist_vars: false,
              inline: false,
              loops: false,
              negate_iife: false,
              properties: false,
              reduce_funcs: false,
              reduce_vars: false,
              switches: false,
              toplevel: false,
              typeofs: false,
              booleans: true,
              if_return: true,
              sequences: true,
              unused: true,
              conditionals: true,
              dead_code: true,
              evaluate: true
            },
            mangle: {
              safari10: true
            },
            output: {
              ecma: 5,
              comments: false,
              ascii_only: true
            }
          },
          sourceMap: true,
          cache: true,
          parallel: true,
          extractComments: false
        }
      )
    ]
  },
  plugins: [
    /* config.plugin('extract-css') */
    new MiniCssExtractPlugin(
      {
        filename: '[name].css',
        chunkFilename: '[name].chunk.css',
        ignoreOrder: true
      }
    ),
    /* config.plugin('optimize-css') */
    new (require('/Users/kaven/dev/test/fe/react/umi3a/node_modules/optimize-css-assets-webpack-plugin/src/index.js'))(
      {
        cssProcessorOptions: {
          parser: function () { /* omitted long function */ }
        },
        cssProcessorPluginOptions: {
          preset: [
            'default',
            {
              mergeRules: false,
              minifyFontValues: {
                removeQuotes: false
              }
            }
          ]
        }
      }
    ),
    /* config.plugin('define') */
    new DefinePlugin(
      {
        'process.env': {
          NODE_ENV: '"production"'
        }
      }
    ),
    /* config.plugin('progress') */
    new (require('/Users/kaven/dev/test/fe/react/umi3a/node_modules/webpackbar/dist/webpackbar.js'))(
      {}
    ),
    /* config.plugin('copy') */
    new (require('/Users/kaven/dev/test/fe/react/umi3a/node_modules/copy-webpack-plugin/dist/cjs.js'))(
      []
    ),
    /* config.plugin('friendly-error') */
    new (require('/Users/kaven/dev/test/fe/react/umi3a/node_modules/friendly-errors-webpack-plugin/index.js'))(
      {
        clearConsole: false
      }
    ),
    /* config.plugin('hash-module-ids') */
    new HashedModuleIdsPlugin()
  ],
  performance: {
    hints: false
  },
  entry: {
    umi: [
      '/Users/kaven/dev/test/fe/react/umi3a/src/.umi-production/umi.ts'
    ]
  }
}
